1. Field of the Invention
The present invention relates to memory management in computer systems. More particularly, it relates to a method and apparatus for extending the main memory of a computer system across network boundaries.
2. Prior Art
Traditional computer systems extend main memory through the use of paging to mass storage devices, such as, for example, hard disks. Paging is the use of virtual memory assignments to physical memory addresses to allow swapping of pages between physical memory and mass storage (i.e., mechanical disk drives) as necessary for execution of a given program. The use of virtual memory is pervasive in the industry and is common knowledge. Paging to mechanical disk drives decreases efficiency and speed as a result of the mechanical limitations of the drive.
The method and system for storing data in and retrieving data from a non-main storage virtual data space disclosed in U.S. Pat. No. 5,159,667 describes a data space that is backed by an expanded and auxiliary storage. This creates issues of correctness when the main store is modified. In addition, mechanisms to provide updates to the auxiliary store are described in detail.
U.S. Pat. No. 5,237,668 discloses a process of using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media. The process describes the mechanisms a user may utilize to obtain a copy of a page of data from any media in an extended memory environment.
The method and system for performing virtual address range mapping in a virtual storage data processing system disclosed in U.S. Pat. No. 5,095,420 provides a method to map a main memory space to a non-main store data space through windowing overlays.
The computer system high speed link method and means disclosed in U.S. Pat. No. 5,218,677, describes a high speed data line for storage access. The link provides communications between a computer system and storage arrays. Communication is initiated with Page-in and Page-out commands.
U.S. Pat. No. 4,843,541 discloses a logical resource partitioning data processing system that describes a method of re-partitioning resources of a data processing system into logical partitions. Multiple operating systems can manage each logical partition.
A stand alone virtual memory manager for the PowerPC processor has been written and is described in xe2x80x9cVMMR: Virtual Memory MTU Reassemblyxe2x80x9d by L. Womak, A Mendlson and R. Mraz; MASCOTS ""97 conference 1/97.
Emerging technology, such as network computers, have created memory constrained devices that have a fixed amount of physical memory for execution. These execution environments rely on JAVA which controls the use of memory through object creation and collection in a fixed memory space.
The present invention provides a method and apparatus for allowing the fixed memory space of a network connected computer (e.g., client) to extend across commodity network boundaries through swapping of pages in virtual memory. The device for performing this service is termed a Memory Server. Data (e.g., file or memory data) is paged into an extended memory area for efficient retrieval and access by clients (hereinafter interchangeably referred to as network connected computers) requesting the data. As such, the prior art mechanical limitations of using a mechanical mass storage device for paging in and paging out data are eliminated and the efficiency is increased.
The method for extending the local memory of a network connected computer according to a first embodiment of the present invention identifies an insufficiency in the local memory of the network connected computer for executing an application. Once an insufficiency is identified, data is transferred (paged) from the local memory to a memory server. The data (e.g., file or memory data) is then transferred from another network connected computer (e.g., a network server or other peer in a peer-to-peer configuration) to the local memory of the network connected computer system, and the location of the data transferred from the other network connected computer (i.e., the network server or other peer) is re-mapped to a virtual location in the network connected computer. The network connected computer system can then continue with the program execution.
The memory server can be a memory area specifically allocated on a network server, a network connected computer, or in one peer computer in a peer-to-peer network configuration. In other embodiments, the memory server can be a remotely located dedicated computer connected to the computer network. In a further embodiment, the memory server is mirrored to provide additional reliability to the network clients.
The communication protocol for communication between the memory server, network server and network connected computers can be any reliable communication protocol that is capable of quick connects and disconnects, and request provided as options, such as, for example, as within RTSP Specification RFC 2326. Any open standard communication or a custom developed communication protocol could be used for memory server communication. The data transfer between the servers and network connected computers can be transmitted using TCP/IP.
The apparatus according to an embodiment of the invention comprises a memory server in communication with a computer network for providing additional memory to a network connected computer system (e.g., client) when it""s local memory is insufficient for a particular application. The communication protocol between the network connected computer, network server, and memory server enable reliable communication for extending the memory of the network connected computer across network boundaries. With this ability, the network connected computers have an intermediate level of storage between main memory and mechanical disk drives. As such, applications that are memory bound (rather than computation bound) and could not be executed in a memory constrained environment such as the network client 10 of FIG. 1, can now be executed by paging to a memory server. As mentioned previously, this paging can be analogized to the paging to a standard mechanical device in a traditional system.